package com.echo.im.server.netty.processor.impl.handler;


/**
 * 平台命令处理器接口，用于处理特定类型的平台命令或数据转换
 * 该接口定义了处理数据、判断支持的命令类型以及数据转换的方法
 *
 * @param <T> 泛型参数，表示处理器处理的数据类型
 * @author: echo
 * @time: 2024-08-16
 */
public interface PlatformCmdHandler<T> {

    /**
     * 处理传入的数据
     * 该方法的实现应根据具体业务逻辑对数据进行处理
     *
     * @param data 要处理的数据，类型由泛型参数<T>确定
     */
    public void handle(T data);

    /**
     * 判断当前处理器是否支持指定的命令或操作类型
     * 通过命令代码判断是否支持，使得处理器能够在处理前确认其适用性
     *
     * @param code 命令或操作类型的代码
     * @return 返回true表示支持该命令类型，否则返回false
     */
    boolean support(Integer code);

    /**
     * 将一个对象转换为处理器处理的数据类型
     * 该方法提供了一种类型转换机制，以便处理器能够处理多种来源的数据
     *
     * @param o 要转换的对象
     * @return 返回转换后的数据，类型由泛型参数<T>确定
     */
    T transForm(Object o);
}

